<?php
// src/Pyaf/GymBundle/Controller/AdminGrupoMuscularController.php
namespace Pyaf\GymBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Pyaf\GymBundle\Entity\GrupoMusculares;
use Pyaf\GymBundle\Form\GrupoMuscularesType;

/**
 * Description of AdminRutinaController
 *
 * @author Toshiba P755-S5272
 */
class AdminGrupoMuscularController extends Controller{
        
    public function listAction(){
        $gruposMusculares = $this->getDoctrine()->getEntityManager()
                                 ->getRepository('PyafGymBundle:GrupoMusculares')->findAllOrderByNombre();
        return $this->render('PyafGymBundle:AdminGrupoMuscular:list.html.twig', array('gruposMusculares' => $gruposMusculares));
    }
    
    public function newAction() {
        
        $peticion = $this->getRequest();
                
        $grupoMuscular = new GrupoMusculares();     
        $formulario = $this->createForm(new GrupoMuscularesType(), $grupoMuscular);
        
        if ($peticion->getMethod() == 'POST') {
            $formulario->bindRequest($peticion);
            if ($formulario->isValid()) {
                $em = $this->getDoctrine()->getEntityManager();
                $grupoMuscular = $formulario->getData();            
                $em->persist($grupoMuscular);
                $em->flush();
                
                $this->get('session')
                         ->setFlash(
                                        'alertaGruposMuscularesSuccess',
                                        'El nuevo grupo muscular ('.$grupoMuscular->getNombre().') ha sido agregado correctamente!'
                                    );
                
                return $this->redirect($this->generateUrl('admin_grupomuscular_list'));
            } 
        }
        
        return $this->render('PyafGymBundle:AdminGrupoMuscular:new.html.twig', array(
            'formulario' => $formulario->createView(),
        ));
    }
    
    public function editAction($id)
    {
        $peticion = $this->get('request');
        $em = $this->getDoctrine()->getEntityManager();

        if (null == $grupoMuscular = $em->find('PyafGymBundle:GrupoMusculares', $id)) {
            throw new NotFoundHttpException('No existe el Grupo Muscular que se quiere modificar');
        }

        $formulario = $this->createForm(new GrupoMuscularesType(), $grupoMuscular);
        $formulario->setData($grupoMuscular);

        if ($peticion->getMethod() == 'POST') {
            $formulario->bindRequest($peticion);

            if ($formulario->isValid()) {
                $em->persist($grupoMuscular);
                $em->flush();
                
                $this->get('session')
                         ->setFlash(
                                        'alertaGruposMuscularesSuccess',
                                        'El grupo muscular ('.$grupoMuscular->getNombre().') ha sido modificado correctamente!'
                                    );
                
                return $this->redirect($this->generateUrl('admin_grupomuscular_list'));
            }
        }

        return $this->render('PyafGymBundle:AdminGrupoMuscular:edit.html.twig', array(
            'formulario' => $formulario->createView(),
            'grupoMuscular'   => $grupoMuscular
        ));
    }
    
    public function showAction($id){        
        $grupoMuscular = new GrupoMusculares(); 
        $grupoMuscular = $this->getDoctrine()->getEntityManager()
                         ->getRepository('PyafGymBundle:GrupoMusculares')
                         ->findGrupoMuscular($id);
              
        return $this->render('PyafGymBundle:AdminGrupoMuscular:info.html.twig', array('grupoMuscular' => $grupoMuscular));
    }
    
    public function disableAction($id)
    {
        $em = $this->getDoctrine()->getEntityManager();
        $grupoMuscular = $em->find('PyafGymBundle:GrupoMusculares', $id);
        if (null == $grupoMuscular) {
            throw new NotFoundHttpException('No existe el grupo muscular que se quiere modificar');
        } else {  
            $grupoMuscular->setHabilitado(!$grupoMuscular->getHabilitado());
            $em->getRepository('PyafGymBundle:GrupoMusculares')->save($grupoMuscular);
            
            if($grupoMuscular->getHabilitado()){
                $this->get('session')
                         ->setFlash(
                                        'alertaGruposMuscularesSuccess',
                                        'El grupo muscular ('.$grupoMuscular->getNombre().') ha sido habilitado correctamente!'
                                    );
            } else{
                $this->get('session')
                         ->setFlash(
                                        'alertaGruposMuscularesError',
                                        'El grupo muscular ('.$grupoMuscular->getNombre().') ha sido inhabilitado correctamente!'
                                    );
            }
        }       

        return $this->redirect($this->generateUrl('admin_grupomuscular_list'));
    }
}

?>
